home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / nt / vprnt100.exe / INSTALL.EXE / OEMSETUP.INF < prev    next >
INI File  |  1993-11-09  |  22KB  |  626 lines

  1. ;-----------------------------------------------------------------------
  2. ; OPTION TYPE
  3. ; -----------
  4. ; This identifies the Option type we are dealing with.  The different
  5. ; possible types are:
  6. ;
  7. ; COMPUTER, VIDEO, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  8. ;-----------------------------------------------------------------------
  9.  
  10. [Identification]
  11.     OptionType = VIDEO
  12.  
  13. ;-----------------------------------------------------------------------
  14. ; LANGUAGES SUPPORTED
  15. ; -------------------
  16. ;
  17. ; The languages supported by the OEM INF, For every language supported
  18. ; we need to have a separate text section for every displayable text
  19. ; section.
  20. ;
  21. ;-----------------------------------------------------------------------
  22.  
  23. [LanguagesSupported]
  24.     ENG
  25.  
  26. ;-----------------------------------------------------------------------
  27. ; OPTION LIST
  28. ; -----------
  29. ; This section lists the OEM Option key names.  These keys are locale
  30. ; independent and used to represent the option in a locale independent
  31. ; manner.
  32. ;
  33. ;-----------------------------------------------------------------------
  34.  
  35. ;
  36. ; Option list order: Option = Miniport driver, BitsPerPel, XResolution, YResolution, VRefresh, Interlaced
  37. ;
  38. ; If you don't want to create a VRefresh or Interlaced value under the service
  39. ; parameters then use the value ""
  40. ;
  41.  
  42. [Options]
  43.     "Diamond Viper VLB 640x480x8, 72Hz"      = p9000,  8,   640,  480,  72,  0
  44.     "Diamond Viper VLB 640x480x16, 72Hz"     = p9000,  16,  640,  480,  72,  0
  45.     "Diamond Viper VLB 640x480x32, 72Hz"     = p9000,  32,  640,  480,  72,  0
  46.     "Diamond Viper VLB 800x600x8, 60Hz"      = p9000,  8,   800,  600,  60,  0
  47.     "Diamond Viper VLB 800x600x8, 72Hz"      = p9000,  8,   800,  600,  72,  0
  48.     "Diamond Viper VLB 800x600x16, 60 Hz"    = p9000,  16,  800,  600,  60,  0
  49.     "Diamond Viper VLB 800x600x16, 72 Hz"    = p9000,  16,  800,  600,  72,  0
  50.     "Diamond Viper VLB 800x600x32, 60 Hz"    = p9000,  32,  800,  600,  60,  0
  51.     "Diamond Viper VLB 800x600x32, 72 Hz"    = p9000,  32,  800,  600,  72,  0
  52.     "Diamond Viper VLB 1024x768x8, 60 Hz"    = p9000,  8,  1024,  768,  60,  0
  53.     "Diamond Viper VLB 1024x768x8, 70 Hz"    = p9000,  8,  1024,  768,  70,  0
  54.     "Diamond Viper VLB 1024x768x16, 60 Hz"   = p9000,  16, 1024,  768,  60,  0
  55.     "Diamond Viper VLB 1024x768x16, 70 Hz"   = p9000,  16, 1024,  768,  70,  0
  56.     "Diamond Viper VLB 1280x1024x8, 55 Hz"   = p9000,  8,  1280,  1024, 55,  0
  57.     "Diamond Viper VLB 1280x1024x8, 60 Hz"   = p9000,  8,  1280,  1024, 60,  0
  58.     "Diamond Viper VLB 1280x1024x8, 74 Hz"   = p9000,  8,  1280,  1024, 74,  0
  59.     "Diamond Viper VLB 1280x1024x8, 75 Hz"   = p9000,  8,  1280,  1024, 75,  0
  60.  
  61. ;
  62. ; This maps detected options into the options we support
  63. ;
  64. ; Format: DetectedOption = MappedOption
  65. ;
  66.  
  67.  
  68. ;       *** This section is NOT required ***
  69.  
  70.  
  71.  
  72. ;
  73. ; Order of the information:
  74. ;
  75. ; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible( 0/1 ), EventMessageFile, TypesSupported
  76. ;
  77.  
  78. [MiniportDrivers]
  79.     p9000  = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_IGNORE, 33, {p9000}, 0, %SystemRoot%\System32\IoLogMsg.dll , 7
  80.  
  81. ;-----------------------------------------------------------------------
  82. ; OPTION TEXT SECTION
  83. ; -------------------
  84. ; These are text strings used to identify the option to the user.  There
  85. ; are separate sections for each language supported.  The format of the
  86. ; section name is "OptionsText" concatenated with the Language represented
  87. ; by the section.
  88. ;
  89. ;-----------------------------------------------------------------------
  90.  
  91. [OptionsTextENG]
  92.     "Diamond Viper VLB 640x480x8, 72 Hz"       =  "Diamond Viper VLB   640x480, 256 colors, 72 Hz"
  93.     "Diamond Viper VLB 640x480x16, 72 Hz"      =  "Diamond Viper VLB   640x480, 16BPP, 72 Hz"
  94.     "Diamond Viper VLB 640x480x32, 72 Hz"      =  "Diamond Viper VLB   640x480, 32BPP, 72 Hz"
  95.     "Diamond Viper VLB 800x600x8, 60 Hz"       =  "Diamond Viper VLB   800x600, 256 colors, 60 Hz"
  96.     "Diamond Viper VLB 800x600x8, 72 Hz"       =  "Diamond Viper VLB   800x600, 256 colors, 72 Hz"
  97.     "Diamond Viper VLB 800x600x16, 60 Hz"      =  "Diamond Viper VLB   800x600, 16BPP, 60 Hz"
  98.     "Diamond Viper VLB 800x600x16, 72 Hz"      =  "Diamond Viper VLB   800x600, 16BPP, 72 Hz"
  99.     "Diamond Viper VLB 800x600x32, 60 Hz"      =  "Diamond Viper VLB   800x600, 32BPP, 60 Hz"
  100.     "Diamond Viper VLB 800x600x32, 72 Hz"      =  "Diamond Viper VLB   800x600, 32BPP, 72 Hz"
  101.     "Diamond Viper VLB 1024x768x8, 60 Hz"      =  "Diamond Viper VLB  1024x768, 256 colors, 60 Hz"
  102.     "Diamond Viper VLB 1024x768x8, 70 Hz"      =  "Diamond Viper VLB  1024x768, 256 colors, 70 Hz"
  103.     "Diamond Viper VLB 1024x768x16, 60 Hz"     =  "Diamond Viper VLB  1024x768, 16BPP, 60 Hz"
  104.     "Diamond Viper VLB 1024x768x16, 70 Hz"     =  "Diamond Viper VLB  1024x768, 16BPP, 70 Hz"
  105.     "Diamond Viper VLB 1280x1024x8, 55 Hz"     =  "Diamond Viper VLB 1280x1024, 256 colors, 55 Hz"
  106.     "Diamond Viper VLB 1280x1024x8, 60 Hz"     =  "Diamond Viper VLB 1280x1024, 256 colors, 60 Hz"
  107.     "Diamond Viper VLB 1280x1024x8, 74 Hz"     =  "Diamond Viper VLB 1280x1024, 256 colors, 74 Hz"
  108.     "Diamond Viper VLB 1280x1024x8, 75 Hz"     =  "Diamond Viper VLB 1280x1024, 256 colors, 75 Hz"
  109.  
  110. ;---------------------------------------------------------------------------
  111. ; 1. Identify
  112. ;
  113. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  114. ;                as we are choosing currently.
  115. ;
  116. ; INPUT:         None
  117. ;
  118. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  119. ;                $($R1): Option Type (COMPUTER ...)
  120. ;                $($R2): Diskette description
  121. ;---------------------------------------------------------------------------
  122.  
  123. [Identify]
  124.     ;
  125.     ;
  126.     read-syms Identification
  127.  
  128.     set Status     = STATUS_SUCCESSFUL
  129.     set Identifier = $(OptionType)
  130.     set Media      = #("Source Media Descriptions", 1, 1)
  131.  
  132.     Return $(Status) $(Identifier) $(Media)
  133.  
  134.  
  135.  
  136. ;------------------------------------------------------------------------
  137. ; 2. ReturnOptions:
  138. ;
  139. ; DESCRIPTION:   To return the option list supported by this INF and the
  140. ;                localised text list representing the options.
  141. ;
  142. ;
  143. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  144. ;
  145. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  146. ;                                STATUS_NOLANGUAGE
  147. ;                                STATUS_FAILED
  148. ;
  149. ;                $($R1): Option List
  150. ;                $($R2): Option Text List
  151. ;------------------------------------------------------------------------
  152.  
  153. [ReturnOptions]
  154.     ;
  155.     ;
  156.     set Status        = STATUS_FAILED
  157.     set OptionList     = {}
  158.     set OptionTextList = {}
  159.  
  160.     ;
  161.     ; Check if the language requested is supported
  162.     ;
  163.     set LanguageList = ^(LanguagesSupported, 1)
  164.     Ifcontains(i) $($0) in $(LanguageList)
  165.         goto returnoptions
  166.     else
  167.         set Status = STATUS_NOLANGUAGE
  168.         goto finish_ReturnOptions
  169.     endif
  170.  
  171.     ;
  172.     ; form a list of all the options and another of the text representing
  173.     ;
  174.  
  175. returnoptions = +
  176.     set OptionList     = ^(Options, 0)
  177.     set OptionTextList = ^(OptionsText$($0), 1)
  178.     set Status         = STATUS_SUCCESSFUL
  179.  
  180. finish_ReturnOptions = +
  181.     Return $(Status) $(OptionList) $(OptionTextList)
  182.  
  183.  
  184.  
  185. ;---------------------------------------------------------------------------
  186. ; MapToSupportedOption
  187. ;
  188. ; DESCRIPTION:   To map a hardware detected option to the NT Supported
  189. ;                option which represents it.
  190. ;
  191. ; INPUT:         $($0): Option
  192. ;
  193. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  194. ;                $($R1): Mapped Option
  195. ;
  196. ;---------------------------------------------------------------------------
  197.  
  198. [MapToSupportedOption]
  199.     ;
  200.     set Status = STATUS_FAILED
  201.     set MappedOption = $($0)
  202.  
  203.     ;
  204.     ; If the option is one we can support using one of our standard options
  205.     ; then map it to the standard option else map it to the default option
  206.     ; which is VGA.
  207.     ;
  208.  
  209.     set OptionList = ^(MapOfOptions, 0)
  210.     ifcontains $($0) in $(OptionList)
  211.         set MappedOption = #(MapOfOptions, $($0), 1)
  212.     else
  213.         set MappedOption = "VGA"
  214.     endif
  215.  
  216.     set Status = STATUS_SUCCESSFUL
  217.     Return $(Status) $(MappedOption)
  218.  
  219.  
  220.  
  221. [ServicesEntry]
  222.     CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0
  223.  
  224.  
  225. ;
  226. ; InstallOption:
  227. ;
  228. ; FUNCTION:  To copy files representing Options
  229. ;            To configure the installed option
  230. ;            To update the registry for the installed option
  231. ;
  232. ; INPUT:     $($0):  Language to use
  233. ;            $($1):  OptionID to install
  234. ;            $($2):  SourceDirectory
  235. ;            $($3):  AddCopy  (YES | NO)
  236. ;            $($4):  DoCopy   (YES | NO)
  237. ;            $($5):  DoConfig (YES | NO)
  238. ;
  239. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  240. ;                            STATUS_NOLANGUAGE |
  241. ;                            STATUS_USERCANCEL |
  242. ;                            STATUS_FAILED
  243. ;
  244.  
  245. [InstallOption]
  246.  
  247.     ;
  248.     ; Set default values for
  249.     ;
  250.     set Status       = STATUS_FAILED
  251.     set DrivesToFree = {}
  252.  
  253.     ;
  254.     ; extract parameters
  255.     ;
  256.     set Option   = $($1)
  257.     set SrcDir   = $($2)
  258.     set AddCopy  = $($3)
  259.     set DoCopy   = $($4)
  260.     set DoConfig = $($5)
  261.  
  262.     ;
  263.     ; Check if the language requested is supported
  264.     ;
  265.     set LanguageList = ^(LanguagesSupported, 1)
  266.     Ifcontains(i) $($0) in $(LanguageList)
  267.     else
  268.         set Status = STATUS_NOLANGUAGE
  269.         goto finish_InstallOption
  270.     endif
  271.     read-syms Strings$($0)
  272.  
  273.     ;
  274.     ; check to see if Option is supported.
  275.     ;
  276.  
  277.     set OptionList = ^(Options, 0)
  278.     ifcontains $(Option) in $(OptionList)
  279.     else
  280.         goto finish_InstallOption
  281.     endif
  282.     set OptionList = ""
  283.  
  284.     ;
  285.     ; Option has been defined already
  286.     ;
  287.     set MiniportDriver    = #(Options, $(Option), 1)
  288.     set BitsPerPel        = #(Options, $(Option), 2)
  289.     set XResolution       = #(Options, $(Option), 3)
  290.     set YResolution       = #(Options, $(Option), 4)
  291.     set VRefresh          = #(Options, $(Option), 5)
  292.     set Interlaced        = #(Options, $(Option), 6)
  293.  
  294.     set Type              = $(#(MiniportDrivers, $(MiniportDriver), 1))
  295.     set Group             =   #(MiniportDrivers, $(MiniportDriver), 2)
  296.     set ErrorControl      = $(#(MiniportDrivers, $(MiniportDriver), 3))
  297.     set Tag               =   #(MiniportDrivers, $(MiniportDriver), 4)
  298.     set InstalledDisplays =   #(MiniportDrivers, $(MiniportDriver), 5)
  299.     set VgaCompatible     =   #(MiniportDrivers, $(MiniportDriver), 6)
  300.     set EventMessageFile  =   #(MiniportDrivers, $(MiniportDriver), 7)
  301.     set TypesSupported    =   #(MiniportDrivers, $(MiniportDriver), 8)
  302.  
  303.     read-syms ServicesEntry
  304.     detect    ServicesEntry
  305.  
  306. installtheoption = +
  307.  
  308.     ;
  309.     ; Code to add files to copy list
  310.     ;
  311.  
  312.     ifstr(i) $(AddCopy) == "YES"
  313.         set DoActualCopy = NO
  314.         set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  315.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
  316.         ifstr(i) $(STATUS) == NO
  317.             set DoActualCopy = YES
  318.             goto addfiles
  319.         endif
  320.         ForListDo $(InstalledDisplays)
  321.             set FileToCheck = #(Files-DisplayDLLs, $($), 2)
  322.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  323.             ifstr(i) $(STATUS) == NO
  324.                 set DoActualCopy = YES
  325.             endif
  326.         EndForListDo
  327.  
  328.         ;
  329.         ; tsk: check if vpinst.exe and res.dat exist
  330.         ;
  331.  
  332.         set FileToCheck = #(Files-Install, install, 2)
  333.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  334.         ifstr(i) $(STATUS) == NO
  335.             set DoActualCopy = YES
  336.         endif
  337.  
  338.         set FileToCheck = #(Files-RESDAT, resdat, 2)
  339.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  340.         ifstr(i) $(STATUS) == NO
  341.             set DoActualCopy = YES
  342.         endif
  343.  
  344.  
  345.  
  346.  
  347. addfiles = +
  348.         ifstr(i) $(DoActualCopy) == NO
  349.             shell "subroutn.inf" DriversExist $($0) $(String1)
  350.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  351.                 Debug-Output "VIDEO.INF: shelling DriversExist failed"
  352.                 goto finish_InstallOption
  353.             endif
  354.  
  355.             ifstr(i) $($R0) == STATUS_CURRENT
  356.             else-ifstr(i) $($R0) == STATUS_NEW
  357.                 set DoActualCopy = YES
  358.             else-ifstr(i) $($R0) == STATUS_USERCANCEL
  359.                 Debug-Output "VIDEO.INF: User cancelled video installation"
  360.                 goto finish_InstallOption
  361.             else
  362.                 Debug-Output "VIDEO.INF: Error reported in DriversExist routine in SUBROUTN.INF"
  363.                 goto finish_InstallOption
  364.             endif
  365.         endif
  366.  
  367.         ifstr(i) $(DoActualCopy) == YES
  368.  
  369.             shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
  370.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  371.                 Debug-Output "VIDEO.INF: shelling DoAskSourceEx failed"
  372.                 goto finish_InstallOption
  373.             endif
  374.  
  375.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  376.                 set SrcDir = $($R1)
  377.                 ifstr(i) $($R2) != ""
  378.                     set DrivesToFree = >($(DrivesToFree), $($R2))
  379.                 endif
  380.             else
  381.                 Debug-Output "VIDEO.INF: User cancelled asking source."
  382.                 goto finish_InstallOption
  383.             endif
  384.  
  385.             install Install-AddCopyOption
  386.             ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
  387.                 Debug-Output "VIDEO.INF: Adding video files to copy list failed"
  388.                 goto finish_InstallOption
  389.             endif
  390.         else
  391.             set DoCopy = NO
  392.         endif
  393.  
  394.     endif
  395.  
  396.     ifstr(i) $(DoCopy) == "YES"
  397.         read-syms ProgressCopy$($0)
  398.         install Install-DoCopyOption
  399.         ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  400.             Debug-Output "Copying files failed"
  401.             goto finish_InstallOption
  402.         else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  403.             set Status = STATUS_USERCANCEL
  404.             goto finish_InstallOption
  405.         endif
  406.     endif
  407.  
  408.     ifstr(i) $(DoConfig) == "YES"
  409.  
  410.         ;
  411.         ; first run a privilege check on modifying the setup node
  412.         ;
  413.  
  414.         shell "registry.inf" CheckSetupModify
  415.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  416.             goto finish_InstallOption
  417.         endif
  418.  
  419.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  420.             goto finish_InstallOption
  421.         endif
  422.  
  423.         ;
  424.         ; first make a new video entry, the entry is created automatically
  425.         ; enabled
  426.         ;
  427.  
  428.         set ServiceNode   = $(MiniportDriver)
  429.         set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  430.  
  431.         set ServicesValues   = { +
  432.                 {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
  433.                 {Start,          0, $(!REG_VT_DWORD),     $(!SERVICE_SYSTEM_START) }, +
  434.                 {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
  435.                 {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
  436.                 {Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
  437.                 {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
  438.                 }
  439.  
  440.         set ParametersValues = { +
  441.                 {InstalledDisplayDrivers,     0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, +
  442.                 {VgaCompatible,               0, $(!REG_VT_DWORD),    $(VgaCompatible)     }, +
  443.                 {DefaultSettings.BitsPerPel,  0, $(!REG_VT_DWORD),    $(BitsPerPel)        }, +
  444.                 {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD),    $(XResolution)       }, +
  445.                 {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD),    $(YResolution)       }  +
  446.                 }
  447.  
  448.         ifstr(i) $(VRefresh) != ""
  449.             set VRefreshValue = {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh)}
  450.             set ParametersValues = >($(ParametersValues), $(VRefreshValue))
  451.         endif
  452.  
  453.         ifstr(i) $(Interlaced) != ""
  454.             set InterlacedValue = {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced)}
  455.             set ParametersValues = >($(ParametersValues), $(InterlacedValue))
  456.         endif
  457.  
  458.         set DeviceValues     = {}
  459.         set EventLogValues   = { +
  460.                 {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
  461.                 {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
  462.                 }
  463.  
  464.         shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
  465.                                                 $(ServicesValues)   +
  466.                                                 $(ParametersValues) +
  467.                                                 $(DeviceValues)     +
  468.                                                 $(EventLogValues)   +
  469.                                                 Device0
  470.  
  471.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  472.             Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
  473.             goto finish_InstallOption
  474.         endif
  475.  
  476.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  477.             Debug-Output "MakeServicesEntry failed for video"
  478.             goto finish_InstallOption
  479.         endif
  480.  
  481.         ;
  482.         ;
  483.         ; then disable the previous video entry
  484.         ;
  485.  
  486.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  487.             ifstr(i) $(CurrentEntry) != VGA
  488.                 ifstr(i) $(CurrentEntry) != ""
  489.                     shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED)
  490.  
  491.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  492.                         Debug-Output "Couldn't find DisableServicesEntry in registry.inf"
  493.                         goto errorconfig
  494.                     endif
  495.  
  496.                     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  497.                         Debug-Output "DisableServices entry failed"
  498.                     endif
  499.                 endif
  500.             endif
  501.         endif
  502.  
  503.         goto configdone
  504.  
  505. errorconfig = +
  506.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  507.             shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED)
  508.             ifstr(i) $(CurrentEntry) != ""
  509.                 shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START)
  510.             endif
  511.         endif
  512.         goto finish_InstallOption
  513.  
  514. configdone = +
  515.  
  516.     endif
  517.  
  518.     set Status = STATUS_SUCCESSFUL
  519.  
  520. finish_InstallOption = +
  521.  
  522.     ;
  523.     ; tsk: Run vpinst.exe
  524.     ;
  525.  
  526.     RunProgram ExitCode "" "" $(!STF_WINDOWSSYSPATH)\vpinst.exe
  527.  
  528.     ForListDo $(DrivesToFree)
  529.         LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  530.     EndForListDo
  531.  
  532.     Return $(Status)
  533.  
  534.  
  535. [Install-AddCopyOption]
  536.  
  537.     set STF_VITAL = ""
  538.     ;
  539.     ; Add the files to the copy list
  540.     ;
  541.     AddSectionKeyFileToCopyList   Files-DisplayMiniportDrivers   +
  542.                                   $(MiniportDriver)              +
  543.                                   $(SrcDir)                      +
  544.                                   $(!STF_WINDOWSSYSPATH)\drivers
  545.  
  546.     ForListDo $(InstalledDisplays)
  547.         AddSectionKeyFileToCopyList   Files-DisplayDLLs          +
  548.                                       $($)                       +
  549.                                       $(SrcDir)                  +
  550.                                       $(!STF_WINDOWSSYSPATH)
  551.  
  552.     EndForListDo
  553.  
  554.  
  555.     ;
  556.     ; tsk: Add the vpinst.exe and p9000res.dat file to the copy list
  557.     ;
  558.     AddSectionFilesToCopyList     Files-Install                  +
  559.                                   $(SrcDir)                      +
  560.                                   $(!STF_WINDOWSSYSPATH)
  561.  
  562.     AddSectionFilesToCopyList     Files-RESDAT                   +
  563.                                   $(SrcDir)                      +
  564.                                   $(!STF_WINDOWSSYSPATH)
  565.  
  566.     exit
  567.  
  568.  
  569. [Install-DoCopyOption]
  570.  
  571.     ;
  572.     ; Copy files in the copy list
  573.     ;
  574.     CopyFilesInCopyList
  575.     exit
  576.  
  577. ;**************************************************************************
  578. ; PROGRESS GUAGE VARIABLES
  579. ;**************************************************************************
  580.  
  581. [ProgressCopyENG]
  582.     ProCaption   = "Windows NT Setup"
  583.     ProCancel    = "Cancel"
  584.     ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
  585.                    "to cancel copying files?"
  586.     ProCancelCap = "Setup Message"
  587.     ProText1     = "Copying:"
  588.     ProText2     = "To:"
  589.  
  590. [StringsENG]
  591.     String1 = "Display"
  592.     String2 = "Please enter the full path to the OEM Display "+
  593.               "driver files.  Then choose Continue."
  594.  
  595. ;-----------------------------------------------------------------------
  596. ; SOURCE MEDIA DESCRIPTIONS
  597. ; -------------------------
  598. ; The OEM should list all the diskette labels here.  The source media
  599. ; description is used during copy to prompt the user for a diskette
  600. ; if the source is diskettes.
  601. ;
  602. ; Use 1 = "Diskette 1 Label" , TAGFILE = disk1
  603. ;     2 = "Diskette 2 Label" , TAGFILE = disk2
  604. ;     ...
  605. ;-----------------------------------------------------------------------
  606.  
  607. ;--------------------------------------------------------------------
  608. ; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL
  609. ; SPREAD SHEETS
  610. ;--------------------------------------------------------------------
  611.  
  612. [Source Media Descriptions]
  613.     1  = "", TAGFILE = disk1
  614.  
  615. [Files-DisplayDLLs]
  616. p9000 = 1, p9000.dll, SIZE=12345
  617.  
  618. [Files-DisplayMiniportDrivers]
  619. p9000 = 1, p9000.sys, SIZE=12345
  620.  
  621. [Files-Install]
  622. install = 1, vpinst.exe, SIZE=12345
  623.  
  624. [Files-RESDAT]
  625. resdat = 1, p9000res.dat, SIZE=12345
  626.